<<在c++里代表什么意思

来源:百度知道 编辑:UC知道 时间:2024/09/20 09:04:57
有段代码:
temp_value = (1<<cur_port) ^ 255;

请高手解答下等式右端是什么意思

<<在这里是移位预算。

1<<cur_port相当于0x00000001向左移动了cur_port位,右边补0

1<<cur_port 就等于 2^cur_port

比如1<<2 就是0x00000001=> 0x00000100 = 4 = 2^2

老早前看过一本书,单用 << 用那个是换位符
就像是 0 1 1 1 1 1
换位后 1 1 1 1 1 0

还有就是操作符重载
比如
operator<<(ostream& os ...)

<<表示把一个数的各二进制位左移若干位,右端补0,
^表示两个数的各二进制位进行按位异或.

假设cur_pot=2,则右端的意思为:把1左移cur_pot,即00000001变成00000100,然后再与255(即11111111)按位异或如下:

00000100
11111111
---------
11111011
所以结果为11111011

<<是左移位操作;相当于乘以2的cur_port次方。

1<<cur_port 将1左移cur_port位,cur_port是定义的宏吧

输入流